package org.example.classtopia.Service;


import org.example.classtopia.Common.Result.Result;
import org.example.classtopia.Model.vo.PageResultVO;
import org.example.classtopia.Model.vo.PostPreviewVO;
import org.example.classtopia.Model.vo.ResourceDetailVO;

public interface ManagerService {
    Result BanUser(Long userId, Integer role);
    Result BanPost(Long postId, Integer role);

    /**
     * 修改用户状态
     * @param userId 用户ID
     * @param state 目标状态
     * @return 是否修改成功
     */
    boolean changeUserState(Long userId, Integer state);

    /**
     * 修改帖子状态
     * @param postId 帖子ID
     * @param state 目标状态
     * @return 是否修改成功
     */
    boolean changePostState(Long postId, Integer state);

    /**
     * 修改资料状态
     * @param resourceId 资料ID
     * @param state 目标状态
     * @return 是否修改成功
     */
    boolean changeResourceState(Long resourceId, Integer state);

    /**
     * 获取所有帖子，支持分页和可选status/category筛选
     * @param status 帖子状态
     * @param categoryId 分类ID
     * @param offset 分页偏移量
     * @param size 页面大小
     * @return 帖子预览列表
     */
    PageResultVO<PostPreviewVO> getAllPostsFlexible(Integer status, Long categoryId, int offset, int size);

    /**
     * 分页获取所有资源（可按分类、类型、状态筛选）
     */
    PageResultVO<ResourceDetailVO> getAllResourcesFlexible(Long categoryId, String fileType, Integer state, int offset, int size);

    // 统计所有用户数
    long countAllUsers();
    // 统计所有帖子数
    long countAllPosts();
    // 统计所有资源数
    long countAllResources();
    // 统计待处理举报数
    long countPendingReports();
}
